DATA SEGMENT INPUT DB 'Plase enter a number(0~9):X=$' PRINT DB 'Y=2X+6=$' ENTER DB 10,13,'$' NUM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA BEGIN:MOV AX,DATA MOV DS,AX mov dx, offset INPUT;输入提示,这里等于LEA DX,INPUT;输入提示 MOV AH,09H INT 21H MOV AH,01H;输入 INT 21H MOV NUM,AL;定义变量num AND AL,0FH;将 AL 的高 4 位清零,只保留低 4 位的值。计算2X+6 ADD AL,AL ADD AL,6 AAM;用于将二进制数转换为十进制数。它将一个字节的二进制数除以 10,将商存储在 AH 寄存器中,余数存储在 AL 寄存器中。 MOV BX,AX;在之前的代码中,我们使用了 AAM 指令将计算得到的 Y 值存储在 AX 寄存器中。 LEA DX,ENTER;换行;通过执行 MOV BX, AX,我们将 Y 值的十位数部分存储在 BX 的高字节(BH)中,将个位数部分存储在 BX 的低字节(BL)中。 MOV AH,09H INT 21H LEA DX,PRINT;输出提示 MOV AH,09H INT 21H MOV DL,BH;输出十位数部分存储在 BX 的高字节(BH)中 ADD DL,30H;转换ascii值 MOV AH,02H INT 21H MOV DL,BL;个位数部分存储在 BX 的低字节(BL)中 ADD DL,30H;转换ascii值 MOV AH,02H INT 21H MOV AH,4CH;结束 INT 21H CODE ENDS END BEGIN